<?php
/**
 * Form_Wysiwyg
 *
 * класс Form_Wysiwyg позволяет работать с <textarea>
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 2.1
 */
class Form_Wysiwyg extends Form_Element
{
  protected $_rows = null; //число рок
  protected $_cols = null; //число столбцов

  function __construct(array $arrSettings = array(), $fieldName = null, $showInConstruct = false) {
    parent::__construct($arrSettings, $fieldName);
    if ($showInConstruct)
      $this->show();
  }
	/**
	 * Метод устанавливает свойство
	 *
	 * @param string $settingName
	 * @param mixed $settingValue
	 * @param string $additionalAllowedSettings
	 */
	public function setSetting($settingName, $settingValue, $additionalAllowedSettings = null) {
    switch ($settingName) {
    	case 'rows':
    		$this->setRows($settingValue);
    		break;
    	case 'cols':
    		$this->setCols($settingValue);
    		break;
    	default:
    	  parent::setSetting($settingName, $settingValue, '"rows", "cols"');
			  break;
    }
  }

  /**
   * задет число строк
   *
   * @param integer $rows
   */
  public function setRows($rows) {
    $this->_rows = $rows;
  }
  /**
   * задет число столбцов
   *
   * @param integer $cols
   */
  public function setCols($cols) {
    $this->_cols = $cols;
  }
  /**
   * Выводит элемент
   *
   */
  public function show() {
  	$this->checkForErrors();
  	echo '<textarea';
  	$this->showElementAttributes();
  	if (isset($this->_rows)) echo ' rows="' . $this->_rows . '"';
  	if (isset($this->_cols)) echo ' cols="' . $this->_cols . '"';
  	echo '>';
  	if (isset($this->_value)) echo $this->_value;
  	elseif (isset($this->_defaultValue)) echo $this->_defaultValue;
  	echo '</textarea>';
  	$this->showAfterElementMessage();
  }
	/*
	protected $_initialValue = ''; // начальное значение
  protected $_rows = null; //Количество строк
  protected $_cols = null; //Количество стобцов


  function __construct ($name, $class = '', $initialValue = '', $rows = null, $cols = null)
  {
    parent::__construct($name, $class);
    $this->_initialValue = $initialValue;
    $this->_rows = $rows;
    $this->_cols = $cols;
  }
*/
  /**
   * Преобразует текущий элемент с его настройками к строковому виду
   *
   * @return string
   */
  /*function toString () {
    $retStr = '<textarea ';
    $retStr .= $this->getStrTypicalAttributes();
    if ($this->_rows)
      $retStr .= 'rows="' . $this->_rows . '" ';
    if ($this->_cols)
      $retStr .= 'cols="' . $this->_cols . '" ';
    $retStr .= ' ' . self::getStrAttrs() . ' ';
    $retStr .= ' >';

    $arrSubmit = self::getSubmitInfo($this->_name, $this->_initialValue);
    $retStr .= $this->_initialValue;

    $retStr .= '</textarea>';
    $retStr .= self::getExecutionMessage($arrSubmit, $this->_useCorrectMessage);
    return($retStr);
  }
  */
  /**
   * задает размеры поля
   *
   * @param integer $rows
   * @param integer $cols
   */
  /*public function setSixe($rows, $cols) {
    $this->_rows = $rows;
    $this->_cols = $cols;
  }*/
  /**
   * задет значение умолчанию
   *
   * @param integer $initialValue
   */
  /*
  public function setInitialValue($initialValue) {
    $this->_initialValue = $initialValue;
  }
  */
}
?>